package com.xx.bysj.mapper;

import com.xx.bysj.dto.HnMenu;
import com.xx.bysj.dto.HnUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface HnMenuMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(HnMenu record);

    int insertSelective(HnMenu record);

    HnMenu selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(HnMenu record);

    int updateByPrimaryKey(HnMenu record);

    /**
     * 查询管理员的菜单
     * @return
     */
    List<HnMenu> selectAdminMenu();

    /**
     * 通过用户查询菜单
     * @param hnUser
     * @return
     */
    List<HnMenu> selectByUser(HnUser hnUser);

    /**
     * 查询所有的菜单信息
     * @return
     */
    List<HnMenu> selectAllMenu();

    /**
     * 通过title查询菜单信息
     * @param title
     * @return
     */
    List<HnMenu> selectByTitle(@Param("title") String title);

    /**
     * 查询父级节点
     * @return
     */
    List<HnMenu> queryType();

    /**
     * 查询所有的节点
     * @return
     */
    List<HnMenu> queryNode();

    /**
     * 查询是否有重复菜单
     * @param menu
     * @return
     */
    List<HnMenu> selectByMenu(HnMenu menu);

    /**
     * 通过title删除
     * @param title
     */
    void deleteByTitle(@Param("title") String title);

    /**
     * 菜单id集合
     * @param id
     * @return
     */
    List<Integer> selectById(@Param("id") Integer id);

    Boolean deleteById(@Param("id") Integer id);
}